/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.seguridad.controlador;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.abstracts.ControladorAbstract;
import sv.com.intesal.seguridad.bean.Formulario;
import sv.com.intesal.seguridad.bean.Modulo;
import sv.com.intesal.seguridad.sql.SQLFormulario;

/**
 *
 * @author ejerez
 */
public class FormularioControlador extends ControladorAbstract {

    public void insert(Formulario f) throws Exception {
        try {
            super.setPreparedStatement(SQLFormulario.insert);
            super.ps.setInt(1, f.getCodigo_m());
            super.ps.setString(2, f.getNombre_f());
            super.ps.setString(3, f.getNombre_form_f());
            super.ps.setString(4, super.v.getEstado(f.getEstado_filtro_f()));
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public void update(Formulario f) throws Exception {
        try {
            super.setPreparedStatement(SQLFormulario.update);
            super.ps.setInt(1, f.getCodigo_m());
            super.ps.setString(2, f.getNombre_f());
            super.ps.setString(3, f.getNombre_form_f());
            super.ps.setString(4, super.v.getEstado(f.getEstado_filtro_f()));
            super.ps.setInt(5, f.getCodigo_f());
            super.ps.executeUpdate();
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    public List<Formulario> getFormularios() throws Exception {
        List<Formulario> lista = new ArrayList<Formulario>();
        try {
            this.getExecuteQuery(SQLFormulario.getFormularios);
            while (super.rs.next()) {
                lista.add(this.getFormulario(super.rs));
            }
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        } finally {
            super.setCloseConexion();
        }
    }

    private Formulario getFormulario(ResultSet rs) throws Exception {
        try {
            Formulario f = new Formulario();
            f.setCodigo_f(rs.getInt("codigo_f"));
            f.setNombre_f(rs.getString("nombre_f"));
            f.setNombre_form_f(rs.getString("nombre_form_f"));
            f.setEstado_f(rs.getString("estado_f"));
            f.setEstado_filtro_f(v.getEstado(rs.getString("estado_f")));

            f.setNombre_m(rs.getString("nombre_m"));
            f.setCodigo_m(rs.getInt("codigo_m"));
            return f;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<Modulo> getModulosActivos() throws Exception {
        try {
            ModuloControlador mc = new ModuloControlador();
            return mc.getModulosActivos();
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
